<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>XMP Toolkit SDK: AdobeXMPCommon::IUTF8String_v1 Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xmp_tagline_small.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">XMP Toolkit SDK
   &#160;<span id="projectnumber">6.0.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IUTF8String__v1.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classAdobeXMPCommon_1_1IUTF8String__v1-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">AdobeXMPCommon::IUTF8String_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Version1 of the interface that represents an UTF8String.  
 <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for AdobeXMPCommon::IUTF8String_v1:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classAdobeXMPCommon_1_1IUTF8String__v1.png" usemap="#AdobeXMPCommon::IUTF8String_5Fv1_map" alt=""/>
  <map id="AdobeXMPCommon::IUTF8String_5Fv1_map" name="AdobeXMPCommon::IUTF8String_5Fv1_map">
<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces." alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,218,24"/>
<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="228,0,446,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0699c6ad71960ba770c393dddcfa171d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0699c6ad71960ba770c393dddcfa171d">append</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count)=0</td></tr>
<tr class="memdesc:a0699c6ad71960ba770c393dddcfa171d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends more content into the existing string object through a pointer to char buffer.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0699c6ad71960ba770c393dddcfa171d">More...</a><br /></td></tr>
<tr class="separator:a0699c6ad71960ba770c393dddcfa171d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4a048a6701b0e8c500bedef4a5ae886"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ac4a048a6701b0e8c500bedef4a5ae886">append</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>)=0</td></tr>
<tr class="memdesc:ac4a048a6701b0e8c500bedef4a5ae886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends the contents of another string into the existing string.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ac4a048a6701b0e8c500bedef4a5ae886">More...</a><br /></td></tr>
<tr class="separator:ac4a048a6701b0e8c500bedef4a5ae886"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09ed6025bf467e1aab61ceab27277ea7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a09ed6025bf467e1aab61ceab27277ea7">assign</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count)=0</td></tr>
<tr class="memdesc:a09ed6025bf467e1aab61ceab27277ea7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overwrites new string content into the existing string object through a pointer to char buffer.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a09ed6025bf467e1aab61ceab27277ea7">More...</a><br /></td></tr>
<tr class="separator:a09ed6025bf467e1aab61ceab27277ea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9a26fe32a7bc969628d60575e2cbc37"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#aa9a26fe32a7bc969628d60575e2cbc37">assign</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>)=0</td></tr>
<tr class="memdesc:aa9a26fe32a7bc969628d60575e2cbc37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overwrites the contents with contents of another string.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#aa9a26fe32a7bc969628d60575e2cbc37">More...</a><br /></td></tr>
<tr class="separator:aa9a26fe32a7bc969628d60575e2cbc37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae19e8581f0cd7c13ada7d465b76d6814"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ae19e8581f0cd7c13ada7d465b76d6814">insert</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count)=0</td></tr>
<tr class="memdesc:ae19e8581f0cd7c13ada7d465b76d6814"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts additional characters into the string right before the character indicated by pos.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ae19e8581f0cd7c13ada7d465b76d6814">More...</a><br /></td></tr>
<tr class="separator:ae19e8581f0cd7c13ada7d465b76d6814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b31b65fa8904172abd35adb388d33cb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a4b31b65fa8904172abd35adb388d33cb">insert</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>)=0</td></tr>
<tr class="memdesc:a4b31b65fa8904172abd35adb388d33cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts additional characters into the string right before the character indicated by pos.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a4b31b65fa8904172abd35adb388d33cb">More...</a><br /></td></tr>
<tr class="separator:a4b31b65fa8904172abd35adb388d33cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34008a94fe509b080c0d1b7f5e650886"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a34008a94fe509b080c0d1b7f5e650886">erase</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>)=0</td></tr>
<tr class="memdesc:a34008a94fe509b080c0d1b7f5e650886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases part of the string, reducing its length.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a34008a94fe509b080c0d1b7f5e650886">More...</a><br /></td></tr>
<tr class="separator:a34008a94fe509b080c0d1b7f5e650886"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94228b12fd752c7051f9cafad0aa1692"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a94228b12fd752c7051f9cafad0aa1692">resize</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> n)=0</td></tr>
<tr class="memdesc:a94228b12fd752c7051f9cafad0aa1692"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes the string to the length of n characters. /param[in] n New string length, expressed in number of characters.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a94228b12fd752c7051f9cafad0aa1692">More...</a><br /></td></tr>
<tr class="separator:a94228b12fd752c7051f9cafad0aa1692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6873a42d7f1a747fc5461e2c653e97cb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a6873a42d7f1a747fc5461e2c653e97cb">replace</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcCount)=0</td></tr>
<tr class="memdesc:a6873a42d7f1a747fc5461e2c653e97cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace portion of string.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a6873a42d7f1a747fc5461e2c653e97cb">More...</a><br /></td></tr>
<tr class="separator:a6873a42d7f1a747fc5461e2c653e97cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90218f86f4baae7d98e75238512c7c5e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a90218f86f4baae7d98e75238512c7c5e">replace</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcCount=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>)=0</td></tr>
<tr class="memdesc:a90218f86f4baae7d98e75238512c7c5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace portion of string.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a90218f86f4baae7d98e75238512c7c5e">More...</a><br /></td></tr>
<tr class="separator:a90218f86f4baae7d98e75238512c7c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c3241fe2fbbc79a6d5b879afd945216"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a1c3241fe2fbbc79a6d5b879afd945216">copy</a> (char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=0) const =0</td></tr>
<tr class="memdesc:a1c3241fe2fbbc79a6d5b879afd945216"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy sequence of characters from string.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a1c3241fe2fbbc79a6d5b879afd945216">More...</a><br /></td></tr>
<tr class="separator:a1c3241fe2fbbc79a6d5b879afd945216"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace90df59f88976a3d889616ebd2a9b77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ace90df59f88976a3d889616ebd2a9b77">find</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=0) const</td></tr>
<tr class="memdesc:ace90df59f88976a3d889616ebd2a9b77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find content in string.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ace90df59f88976a3d889616ebd2a9b77">More...</a><br /></td></tr>
<tr class="separator:ace90df59f88976a3d889616ebd2a9b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a532340b35fa3ff7d39777d35ac1194f6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a532340b35fa3ff7d39777d35ac1194f6">find</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count) const =0</td></tr>
<tr class="memdesc:a532340b35fa3ff7d39777d35ac1194f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find content in string.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a532340b35fa3ff7d39777d35ac1194f6">More...</a><br /></td></tr>
<tr class="separator:a532340b35fa3ff7d39777d35ac1194f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6add6d4edf183eaa0cd456abe3513606"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a6add6d4edf183eaa0cd456abe3513606">find</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) const =0</td></tr>
<tr class="memdesc:a6add6d4edf183eaa0cd456abe3513606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find content in string.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a6add6d4edf183eaa0cd456abe3513606">More...</a><br /></td></tr>
<tr class="separator:a6add6d4edf183eaa0cd456abe3513606"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad11523bc62567ec5aff0ee4b471c69f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ad11523bc62567ec5aff0ee4b471c69f1">rfind</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) const</td></tr>
<tr class="memdesc:ad11523bc62567ec5aff0ee4b471c69f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find last occurrence of content in string.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ad11523bc62567ec5aff0ee4b471c69f1">More...</a><br /></td></tr>
<tr class="separator:ad11523bc62567ec5aff0ee4b471c69f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8112edf06f03c4a39b871a28f52f6ac"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ab8112edf06f03c4a39b871a28f52f6ac">rfind</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count) const =0</td></tr>
<tr class="separator:ab8112edf06f03c4a39b871a28f52f6ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0ae45dae35299ca8c135ecaeddab479"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#aa0ae45dae35299ca8c135ecaeddab479">rfind</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) const =0</td></tr>
<tr class="memdesc:aa0ae45dae35299ca8c135ecaeddab479"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find last occurrence of content in string.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#aa0ae45dae35299ca8c135ecaeddab479">More...</a><br /></td></tr>
<tr class="separator:aa0ae45dae35299ca8c135ecaeddab479"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object.  <a href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory.  <a href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version.  <a href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
<tr class="memitem:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top">const <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a1827fc276dd3beb0df9aaab4ad1626d0">GetInterfacePointer</a> () const</td></tr>
<tr class="memdesc:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version.  <a href="classAdobeXMPCommon_1_1IVersionable.html#a1827fc276dd3beb0df9aaab4ad1626d0">More...</a><br /></td></tr>
<tr class="separator:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87f877558ba7e5701a1e8912a79fd828"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a87f877558ba7e5701a1e8912a79fd828">compare</a> (const char *buf) const</td></tr>
<tr class="memdesc:a87f877558ba7e5701a1e8912a79fd828"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare strings.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a87f877558ba7e5701a1e8912a79fd828">More...</a><br /></td></tr>
<tr class="separator:a87f877558ba7e5701a1e8912a79fd828"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe0cd76451de9e8f3b94ff23bbb1f7d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#afe0cd76451de9e8f3b94ff23bbb1f7d7">compare</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, const char *buf) const</td></tr>
<tr class="memdesc:afe0cd76451de9e8f3b94ff23bbb1f7d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare strings.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#afe0cd76451de9e8f3b94ff23bbb1f7d7">More...</a><br /></td></tr>
<tr class="separator:afe0cd76451de9e8f3b94ff23bbb1f7d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e9593e199b49e394bcaafecc5198b38"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a9e9593e199b49e394bcaafecc5198b38">compare</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count) const =0</td></tr>
<tr class="memdesc:a9e9593e199b49e394bcaafecc5198b38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare strings.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a9e9593e199b49e394bcaafecc5198b38">More...</a><br /></td></tr>
<tr class="separator:a9e9593e199b49e394bcaafecc5198b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6fd1aaf8beb9061ba3a671d4635e221"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#af6fd1aaf8beb9061ba3a671d4635e221">compare</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;str) const</td></tr>
<tr class="memdesc:af6fd1aaf8beb9061ba3a671d4635e221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare strings.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#af6fd1aaf8beb9061ba3a671d4635e221">More...</a><br /></td></tr>
<tr class="separator:af6fd1aaf8beb9061ba3a671d4635e221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a622ccec99c7ad439c760ba8a291d6576"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a622ccec99c7ad439c760ba8a291d6576">compare</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;str, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> strPos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> strLen=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) const =0</td></tr>
<tr class="memdesc:a622ccec99c7ad439c760ba8a291d6576"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare strings.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a622ccec99c7ad439c760ba8a291d6576">More...</a><br /></td></tr>
<tr class="separator:a622ccec99c7ad439c760ba8a291d6576"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a843c45ba7550a8655900aebd4445770a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a843c45ba7550a8655900aebd4445770a">substr</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) const =0</td></tr>
<tr class="memdesc:a843c45ba7550a8655900aebd4445770a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a new string object which contains a sub string of the actual string object.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a843c45ba7550a8655900aebd4445770a">More...</a><br /></td></tr>
<tr class="separator:a843c45ba7550a8655900aebd4445770a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf92b370940cac3939e168e0c8e9af14"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#acf92b370940cac3939e168e0c8e9af14">empty</a> () const =0</td></tr>
<tr class="memdesc:acf92b370940cac3939e168e0c8e9af14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the string object is empty or not.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#acf92b370940cac3939e168e0c8e9af14">More...</a><br /></td></tr>
<tr class="separator:acf92b370940cac3939e168e0c8e9af14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74f019bc9c2d4a36c689906529abca14"><td class="memItemLeft" align="right" valign="top">virtual const char *APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a74f019bc9c2d4a36c689906529abca14">c_str</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:a74f019bc9c2d4a36c689906529abca14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the actual location where contents of string are stored.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a74f019bc9c2d4a36c689906529abca14">More...</a><br /></td></tr>
<tr class="separator:a74f019bc9c2d4a36c689906529abca14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c89cae09770d23100e36a7401733e00"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a8c89cae09770d23100e36a7401733e00">clear</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:a8c89cae09770d23100e36a7401733e00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the contents of the string object.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a8c89cae09770d23100e36a7401733e00">More...</a><br /></td></tr>
<tr class="separator:a8c89cae09770d23100e36a7401733e00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5da1566bf196fc58c4c3d5a469e1f4f3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">size</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:a5da1566bf196fc58c4c3d5a469e1f4f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates the number of bytes used by the contents of the string object.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">More...</a><br /></td></tr>
<tr class="separator:a5da1566bf196fc58c4c3d5a469e1f4f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d2adae65b938d56ff526d67cc9634a3"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0d2adae65b938d56ff526d67cc9634a3">CreateUTF8String</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> objFactory)</td></tr>
<tr class="memdesc:a0d2adae65b938d56ff526d67cc9634a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an empty IUTF8String object.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0d2adae65b938d56ff526d67cc9634a3">More...</a><br /></td></tr>
<tr class="separator:a0d2adae65b938d56ff526d67cc9634a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcf1d7294c5e3c518c3fcbc3bc16d305"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#afcf1d7294c5e3c518c3fcbc3bc16d305">CreateUTF8String</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> objFactory, const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count)</td></tr>
<tr class="memdesc:afcf1d7294c5e3c518c3fcbc3bc16d305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an IUTF8String object whose initial contents are copied from a char buffer.  <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#afcf1d7294c5e3c518c3fcbc3bc16d305">More...</a><br /></td></tr>
<tr class="separator:afcf1d7294c5e3c518c3fcbc3bc16d305"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade123eab5a2f5e432ce6e50f43eddad3"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ade123eab5a2f5e432ce6e50f43eddad3">~IUTF8String_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
<tr class="separator:ade123eab5a2f5e432ce6e50f43eddad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Version1 of the interface that represents an UTF8String. </p>
<p>Provides all the functions to access properties of the string object, appends or assigns content to the existing string objects and clones existing string objects. </p>

<p class="definition">Definition at line <a class="el" href="IUTF8String_8h_source.html#l00025">25</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ade123eab5a2f5e432ce6e50f43eddad3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade123eab5a2f5e432ce6e50f43eddad3">&#9670;&nbsp;</a></span>~IUTF8String_v1()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual AdobeXMPCommon::IUTF8String_v1::~IUTF8String_v1 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor </p>

<p class="definition">Definition at line <a class="el" href="IUTF8String_8h_source.html#l00475">475</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;{}</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a0699c6ad71960ba770c393dddcfa171d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0699c6ad71960ba770c393dddcfa171d">&#9670;&nbsp;</a></span>append() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::append </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Appends more content into the existing string object through a pointer to char buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing new content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>

</div>
</div>
<a id="ac4a048a6701b0e8c500bedef4a5ae886"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4a048a6701b0e8c500bedef4a5ae886">&#9670;&nbsp;</a></span>append() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::append </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>srcPos</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Appends the contents of another string into the existing string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Shared pointer to const #AdobeXMPCommon::IUTF8String whose contents will be appended to existing content in the object. Invalid shared pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">srcPos</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the position of the first character in src that is inserted into the object as a substring. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length of the substring to be copied (if the string is shorter, as many characters as possible are copied). A value of npos indicates all characters until the end of src. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>srcPos is greater than length of src. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a09ed6025bf467e1aab61ceab27277ea7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09ed6025bf467e1aab61ceab27277ea7">&#9670;&nbsp;</a></span>assign() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::assign </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Overwrites new string content into the existing string object through a pointer to char buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing new content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>

</div>
</div>
<a id="aa9a26fe32a7bc969628d60575e2cbc37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9a26fe32a7bc969628d60575e2cbc37">&#9670;&nbsp;</a></span>assign() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::assign </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>srcPos</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Overwrites the contents with contents of another string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String whose contents will overwrite existing content in the object. Invalid shared pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">srcPos</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the position of the first character in src that is inserted into the object as a substring. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length of the substring to be copied. A value of npos indicates all characters until the end of src. If this is greater than the available characters in the substring then copying is limited to the number of available characters. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>srcPos is greater than length of src. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a74f019bc9c2d4a36c689906529abca14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74f019bc9c2d4a36c689906529abca14">&#9670;&nbsp;</a></span>c_str()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* APICALL AdobeXMPCommon::IUTF8String_v1::c_str </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides access to the actual location where contents of string are stored. </p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to a buffer of const chars containing the contents of the string object. </dd></dl>

</div>
</div>
<a id="a8c89cae09770d23100e36a7401733e00"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c89cae09770d23100e36a7401733e00">&#9670;&nbsp;</a></span>clear()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void APICALL AdobeXMPCommon::IUTF8String_v1::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clears the contents of the string object. </p>

</div>
</div>
<a id="a87f877558ba7e5701a1e8912a79fd828"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87f877558ba7e5701a1e8912a79fd828">&#9670;&nbsp;</a></span>compare() <span class="overload">[1/5]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> AdobeXMPCommon::IUTF8String_v1::compare </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compare strings. </p>
<p>Compares the value of the string object (or a substring) to the sequence of characters specified by its arguments. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be compared. It can be null terminated or not. NULL pointer will be treated as empty string.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a signed integral indicating the relation between the strings <table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadCenter">value </th><th class="markdownTableHeadLeft">relation between compared string and comparing string  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">0 </td><td class="markdownTableBodyLeft">They compare equal  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyCenter">&lt;0 </td><td class="markdownTableBodyLeft">Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter.  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">&gt;0 </td><td class="markdownTableBodyLeft">Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer.  </td></tr>
</table>
</dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

<p class="definition">Definition at line <a class="el" href="IUTF8String_8h_source.html#l00285">285</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;                                                        {</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a87f877558ba7e5701a1e8912a79fd828">compare</a>( 0, <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">size</a>(), buf, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;                }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos()</a>.</p>

</div>
</div>
<a id="af6fd1aaf8beb9061ba3a671d4635e221"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6fd1aaf8beb9061ba3a671d4635e221">&#9670;&nbsp;</a></span>compare() <span class="overload">[2/5]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> AdobeXMPCommon::IUTF8String_v1::compare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compare strings. </p>
<p>Compares the value of the string object (or a substring) to the contents of an string or substring object specified by its arguments. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">str</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String containing content to be compared. Invalid shared pointer will be treated as empty string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a signed integral indicating the relation between the strings <table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadCenter">value </th><th class="markdownTableHeadLeft">relation between compared string and comparing string  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">0 </td><td class="markdownTableBodyLeft">They compare equal  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyCenter">&lt;0 </td><td class="markdownTableBodyLeft">Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter.  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">&gt;0 </td><td class="markdownTableBodyLeft">Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer.  </td></tr>
</table>
</dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>strPos is greater than length of str.</li>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

<p class="definition">Definition at line <a class="el" href="IUTF8String_8h_source.html#l00349">349</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;                                                                  {</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a87f877558ba7e5701a1e8912a79fd828">compare</a>( 0, <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">size</a>(), str, 0, str-&gt;size() );</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="afe0cd76451de9e8f3b94ff23bbb1f7d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe0cd76451de9e8f3b94ff23bbb1f7d7">&#9670;&nbsp;</a></span>compare() <span class="overload">[3/5]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> AdobeXMPCommon::IUTF8String_v1::compare </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compare strings. </p>
<p>Compares the value of the string object (or a substring) to the sequence of characters specified by its arguments. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be compared. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the compared string. If this is greater than the string length, it is treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Length of compared string (if the string is shorter, as many characters as possible). A value of npos indicates all characters until the end of the string.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a signed integral indicating the relation between the strings <table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadCenter">value </th><th class="markdownTableHeadLeft">relation between compared string and comparing string  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">0 </td><td class="markdownTableBodyLeft">They compare equal  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyCenter">&lt;0 </td><td class="markdownTableBodyLeft">Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter.  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">&gt;0 </td><td class="markdownTableBodyLeft">Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer.  </td></tr>
</table>
</dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

<p class="definition">Definition at line <a class="el" href="IUTF8String_8h_source.html#l00307">307</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                                                                              {</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a87f877558ba7e5701a1e8912a79fd828">compare</a>( pos, len, buf, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos()</a>.</p>

</div>
</div>
<a id="a9e9593e199b49e394bcaafecc5198b38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e9593e199b49e394bcaafecc5198b38">&#9670;&nbsp;</a></span>compare() <span class="overload">[4/5]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL AdobeXMPCommon::IUTF8String_v1::compare </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compare strings. </p>
<p>Compares the value of the string object (or a substring) to the sequence of characters specified by its arguments. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be compared. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the compared string. If this is greater than the string length, it is treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Length of compared string (if the string is shorter, as many characters as possible). A value of npos indicates all characters until the end of the string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Number of characters to compare.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a signed integral indicating the relation between the strings <table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadCenter">value </th><th class="markdownTableHeadLeft">relation between compared string and comparing string  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">0 </td><td class="markdownTableBodyLeft">They compare equal  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyCenter">&lt;0 </td><td class="markdownTableBodyLeft">Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter.  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">&gt;0 </td><td class="markdownTableBodyLeft">Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer.  </td></tr>
</table>
</dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a622ccec99c7ad439c760ba8a291d6576"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a622ccec99c7ad439c760ba8a291d6576">&#9670;&nbsp;</a></span>compare() <span class="overload">[5/5]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL AdobeXMPCommon::IUTF8String_v1::compare </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>strPos</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>strLen</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compare strings. </p>
<p>Compares the value of the string object (or a substring) to the contents of an string or substring object specified by its arguments. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the compared string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Length of compared string (if the string is shorter, as many characters as possible). A value of npos indicates all characters until the end of the string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">str</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String containing content to be compared. Invalid shared pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">strPos</td><td>Position of the first character in the comparing string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">strLen</td><td>Length of comparing string (if the string is shorter, as many characters as possible).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a signed integral indicating the relation between the strings <table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadCenter">value </th><th class="markdownTableHeadLeft">relation between compared string and comparing string  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">0 </td><td class="markdownTableBodyLeft">They compare equal  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyCenter">&lt;0 </td><td class="markdownTableBodyLeft">Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter.  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">&gt;0 </td><td class="markdownTableBodyLeft">Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer.  </td></tr>
</table>
</dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>strPos is greater than length of str.</li>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a1c3241fe2fbbc79a6d5b879afd945216"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c3241fe2fbbc79a6d5b879afd945216">&#9670;&nbsp;</a></span>copy()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::copy </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy sequence of characters from string. </p>
<p>Copies a substring of the current value of the string object into the array. This substring contains the len characters that start at position pos. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">buf</td><td>Pointer to an array of characters. The array shall contain enough storage for the copied characters. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Number of characters to copy (if the string is shorter, as many characters as possible are copied). </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character to be copied. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of characters copied to the array. This may be equal to count or to <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3" title="Indicates the number of bytes used by the contents of the string object.">size()</a> - pos. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>The function does not append a null character at the end of the copied content. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a0d2adae65b938d56ff526d67cc9634a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d2adae65b938d56ff526d67cc9634a3">&#9670;&nbsp;</a></span>CreateUTF8String() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> AdobeXMPCommon::IUTF8String_v1::CreateUTF8String </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a>&#160;</td>
          <td class="paramname"><em>objFactory</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates an empty IUTF8String object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">objFactory</td><td>A pointer to #AdobeXMPCommon::IObjectFactory object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to an empty IUTF8String object </dd></dl>

</div>
</div>
<a id="afcf1d7294c5e3c518c3fcbc3bc16d305"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afcf1d7294c5e3c518c3fcbc3bc16d305">&#9670;&nbsp;</a></span>CreateUTF8String() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> AdobeXMPCommon::IUTF8String_v1::CreateUTF8String </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a>&#160;</td>
          <td class="paramname"><em>objFactory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates an IUTF8String object whose initial contents are copied from a char buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">objFactory</td><td>A pointer to #AdobeXMPCommon::IObjectFactory object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a newly created #AdobeXMPCommon::IUTF8String object </dd></dl>

</div>
</div>
<a id="acf92b370940cac3939e168e0c8e9af14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf92b370940cac3939e168e0c8e9af14">&#9670;&nbsp;</a></span>empty()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool APICALL AdobeXMPCommon::IUTF8String_v1::empty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Indicates whether the string object is empty or not. </p>
<dl class="section return"><dt>Returns</dt><dd>A value of type bool; true in case the contents of the string object is empty. </dd></dl>

</div>
</div>
<a id="a34008a94fe509b080c0d1b7f5e650886"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34008a94fe509b080c0d1b7f5e650886">&#9670;&nbsp;</a></span>erase()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::erase </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Erases part of the string, reducing its length. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character to be erased. If this is greater than the string length, nothing is erased. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Number of characters to erase (if the string is shorter, as many characters as possible are erased). A value of npos indicates all characters until the end of the string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a532340b35fa3ff7d39777d35ac1194f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a532340b35fa3ff7d39777d35ac1194f6">&#9670;&nbsp;</a></span>find() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::find </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Find content in string. </p>
<p>Searches the string for the first occurrence of the sequence specified by its arguments. When pos is specified, the search only includes characters at or after position pos, ignoring any possible occurrences that include characters before pos. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be matched. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the string to be considered in the search. If this is greater than the string length, the function never finds matches. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Length of sequence of characters to match. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The position of the first character of the first match. If no matches were found, the function returns npos. </dd></dl>

</div>
</div>
<a id="ace90df59f88976a3d889616ebd2a9b77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace90df59f88976a3d889616ebd2a9b77">&#9670;&nbsp;</a></span>find() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> AdobeXMPCommon::IUTF8String_v1::find </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Find content in string. </p>
<p>Searches the string for the first occurrence of the sequence specified by its arguments. When pos is specified, the search only includes characters at or after position pos, ignoring any possible occurrences that include characters before pos. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be matched. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the string to be considered in the search. If this is greater than the string length, the function never finds matches. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The position of the first character of the first match. If no matches were found, the function returns npos. </dd></dl>

<p class="definition">Definition at line <a class="el" href="IUTF8String_8h_source.html#l00196">196</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                                                                    {</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ace90df59f88976a3d889616ebd2a9b77">find</a>( buf, pos, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos()</a>.</p>

</div>
</div>
<a id="a6add6d4edf183eaa0cd456abe3513606"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6add6d4edf183eaa0cd456abe3513606">&#9670;&nbsp;</a></span>find() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::find </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Find content in string. </p>
<p>Searches the string for the first occurrence of the sequence specified by its arguments. When pos is specified, the search only includes characters at or after position pos, ignoring any possible occurrences that include characters before pos. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String containing content to be matched. Invalid shared pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the string to be considered in the search. If this is greater than the string length, the function never finds matches. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Length of sequence of characters to match. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The position of the first character of the first match. If no matches were found, the function returns npos. </dd></dl>

</div>
</div>
<a id="ae19e8581f0cd7c13ada7d465b76d6814"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae19e8581f0cd7c13ada7d465b76d6814">&#9670;&nbsp;</a></span>insert() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::insert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Inserts additional characters into the string right before the character indicated by pos. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Insertion point: The new contents are inserted before the character at position pos. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing new content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. \attention Error is thrown in case<ul>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a4b31b65fa8904172abd35adb388d33cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b31b65fa8904172abd35adb388d33cb">&#9670;&nbsp;</a></span>insert() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::insert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>srcPos</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Inserts additional characters into the string right before the character indicated by pos. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Insertion point: The new contents are inserted before the character at position pos. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String whose contents will be copied and pushed into the object. Invalid shared pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">srcPos</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the position of the first character in src that is inserted into the object as a substring. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length of the substring to be copied (if the string is shorter, as many characters as possible are copied). A value of npos indicates all characters until the end of src. If this is greater than the available characters in the substring then copying is limited to the number of available characters. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>srcPos is greater than length of src.</li>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a6873a42d7f1a747fc5461e2c653e97cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6873a42d7f1a747fc5461e2c653e97cb">&#9670;&nbsp;</a></span>replace() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::replace </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>srcCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Replace portion of string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character to be replaced. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Number of characters to replace (if the string is shorter, as many characters as possible are replaced). A value of npos indicates all characters until the end of the string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing new content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">srcCount</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a90218f86f4baae7d98e75238512c7c5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90218f86f4baae7d98e75238512c7c5e">&#9670;&nbsp;</a></span>replace() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::replace </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>srcPos</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>srcCount</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Replace portion of string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character to be replaced. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Number of characters to replace (if the string is shorter, as many characters as possible are replaced). A value of npos indicates all characters until the end of the string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Shared pointer to const #AdobeXMPCommon::IUTF8String whose contents will be copied and pushed into the object. Invalid shared pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">srcPos</td><td>Position of the first character in str that is copied to the object as replacement. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">srcCount</td><td>Length of the substring to be copied (if the string is shorter, as many characters as possible are copied). A value of npos indicates all characters until the end of str. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>srcPos is greater than length of src.</li>
<li>pos is greater than the object's length. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a94228b12fd752c7051f9cafad0aa1692"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94228b12fd752c7051f9cafad0aa1692">&#9670;&nbsp;</a></span>resize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void APICALL AdobeXMPCommon::IUTF8String_v1::resize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Resizes the string to the length of n characters. /param[in] n New string length, expressed in number of characters. </p>
<dl class="section note"><dt>Note</dt><dd>If n is smaller than the current string length, the current value is shortened to its first size character, removing the characters beyond the nth. If n is greater than the current string length, the current content is extended by inserting at the end as many NULL characters as needed to reach a size of n. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>n is greater than max_size</li>
<li>allocation fails </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ab8112edf06f03c4a39b871a28f52f6ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8112edf06f03c4a39b871a28f52f6ac">&#9670;&nbsp;</a></span>rfind() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::rfind </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ad11523bc62567ec5aff0ee4b471c69f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad11523bc62567ec5aff0ee4b471c69f1">&#9670;&nbsp;</a></span>rfind() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> AdobeXMPCommon::IUTF8String_v1::rfind </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Find last occurrence of content in string. </p>
<p>Searches the string for the last occurrence of the sequence specified by its arguments. When pos is specified, the search only includes sequences of characters that begin at or before position pos, ignoring any possible match beginning after pos. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be matched. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the last character in the string to be considered as the beginning of a match. Any value greater or equal than the string length (including npos) means that the entire string is searched. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The position of the fist character of the last match. If no matches were found, the function returns npos. </dd></dl>

<p class="definition">Definition at line <a class="el" href="IUTF8String_8h_source.html#l00245">245</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;                                                                        {</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ad11523bc62567ec5aff0ee4b471c69f1">rfind</a>( buf, pos, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos()</a>.</p>

</div>
</div>
<a id="aa0ae45dae35299ca8c135ecaeddab479"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0ae45dae35299ca8c135ecaeddab479">&#9670;&nbsp;</a></span>rfind() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::rfind </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Find last occurrence of content in string. </p>
<p>Searches the string for the last occurrence of the sequence specified by its arguments. When pos is specified, the search only includes sequences of characters that begin at or before position pos, ignoring any possible match beginning after pos. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String containing content to be matched. Invalid shared pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the last character in the string to be considered as the beginning of a match. Any value greater or equal than the string length (including npos) means that the entire string is searched. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Length of sequence of characters to match. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The position of the fist character of the last match. If no matches were found, the function returns npos. </dd></dl>

</div>
</div>
<a id="a5da1566bf196fc58c4c3d5a469e1f4f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5da1566bf196fc58c4c3d5a469e1f4f3">&#9670;&nbsp;</a></span>size()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Indicates the number of bytes used by the contents of the string object. </p>
<dl class="section return"><dt>Returns</dt><dd>An object of type #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> containing the number of bytes used to store the contents fo the string object. </dd></dl>

</div>
</div>
<a id="a843c45ba7550a8655900aebd4445770a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a843c45ba7550a8655900aebd4445770a">&#9670;&nbsp;</a></span>substr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::substr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>pos</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a new string object which contains a sub string of the actual string object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character to be copied. If this is greater than the string length, then nothing is copied. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Number of characters to copy (if the string is shorter, as many characters as possible are copied). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to AdobeXMPCommon::IUTF8String which is exact replica of the current object. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>pos is greater than the object's length.</li>
<li>allocation fails </li>
</ul>
</dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>public/include/XMPCommon/Interfaces/<a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclassAdobeXMPCommon_1_1IUTF8String__v1_html_a5da1566bf196fc58c4c3d5a469e1f4f3"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">AdobeXMPCommon::IUTF8String_v1::size</a></div><div class="ttdeci">virtual sizet APICALL size() const __NOTHROW__=0</div><div class="ttdoc">Indicates the number of bytes used by the contents of the string object.</div></div>
<div class="ttc" id="anamespaceAdobeXMPCommon_html_afc1bfa88991003b305ab5023b483d3f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a></div><div class="ttdeci">const sizet npos(kMaxSize)</div></div>
<div class="ttc" id="aclassAdobeXMPCommon_1_1IUTF8String__v1_html_a87f877558ba7e5701a1e8912a79fd828"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a87f877558ba7e5701a1e8912a79fd828">AdobeXMPCommon::IUTF8String_v1::compare</a></div><div class="ttdeci">int32 compare(const char *buf) const</div><div class="ttdoc">Compare strings.</div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00285">IUTF8String.h:285</a></div></div>
<div class="ttc" id="aclassAdobeXMPCommon_1_1IUTF8String__v1_html_ad11523bc62567ec5aff0ee4b471c69f1"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ad11523bc62567ec5aff0ee4b471c69f1">AdobeXMPCommon::IUTF8String_v1::rfind</a></div><div class="ttdeci">sizet rfind(const char *buf, sizet pos=npos) const</div><div class="ttdoc">Find last occurrence of content in string.</div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00245">IUTF8String.h:245</a></div></div>
<div class="ttc" id="aclassAdobeXMPCommon_1_1IUTF8String__v1_html_ace90df59f88976a3d889616ebd2a9b77"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ace90df59f88976a3d889616ebd2a9b77">AdobeXMPCommon::IUTF8String_v1::find</a></div><div class="ttdeci">sizet find(const char *buf, sizet pos=0) const</div><div class="ttdoc">Find content in string.</div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00196">IUTF8String.h:196</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></li><li class="navelem"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
